home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Foxpro 2.6 {Windows} / APPMENU.PR_ / APPMENU.bin
Text File  |  1994-03-10  |  34KB  |  928 lines

  1. *       ╓─────────────────────────────────────────────────────────╖
  2. *       ║                                                         ║
  3. *       ║ 02/09/94             APPMENU.MPR              22:21:53  ║
  4. *       ║                                                         ║
  5. *       ╟─────────────────────────────────────────────────────────╢
  6. *       ║                                                         ║
  7. *       ║ Author's Name                                           ║
  8. *       ║                                                         ║
  9. *       ║ Copyright (c) 1994 Company Name                         ║
  10. *       ║ Address                                                 ║
  11. *       ║ City,     Zip                                           ║
  12. *       ║                                                         ║
  13. *       ║ Description:                                            ║
  14. *       ║ This program was automatically generated by GENMENU.    ║
  15. *       ║                                                         ║
  16. *       ╙─────────────────────────────────────────────────────────╜
  17.  
  18.  
  19. *       ╓─────────────────────────────────────────────────────────╖
  20. *       ║                                                         ║
  21. *       ║                        Setup Code                       ║
  22. *       ║                                                         ║
  23. *       ╙─────────────────────────────────────────────────────────╜
  24. *
  25.  
  26. SET SYSMENU AUTOMATIC
  27. EXTERNAL PROCEDURE showpop, juststem, justfname, justpath, addbs, ;
  28.    forceext, defaultext, justext
  29.  
  30. IF TYPE("SKIPVAR") <> "U"
  31.    RELEASE m.skipvar
  32. ENDIF
  33. PUBLIC m.skipvar
  34. m.skipvar = .F.
  35. CLEAR MACRO
  36.  
  37.  
  38. *       ╓─────────────────────────────────────────────────────────╖
  39. *       ║                                                         ║
  40. *       ║                      Menu Definition                    ║
  41. *       ║                                                         ║
  42. *       ╙─────────────────────────────────────────────────────────╜
  43. *
  44.  
  45. SET SYSMENU TO
  46.  
  47. SET SYSMENU AUTOMATIC
  48.  
  49. DEFINE PAD _qne1bxoga OF _MSYSMENU PROMPT "\<File" COLOR SCHEME 3
  50. DEFINE PAD _qne1bxogl OF _MSYSMENU PROMPT "\<Edit" COLOR SCHEME 3 ;
  51.     KEY ALT+E, ""
  52. DEFINE PAD _qne1bxogm OF _MSYSMENU PROMPT "\<Application" COLOR SCHEME 3 ;
  53.     KEY ALT+A, ""
  54. DEFINE PAD _qne1bxoha OF _MSYSMENU PROMPT "\<Utilities" COLOR SCHEME 3 ;
  55.     KEY ALT+U, ""
  56. DEFINE PAD _qne1bxohj OF _MSYSMENU PROMPT "\<Help" COLOR SCHEME 3 ;
  57.     KEY ALT+S, ""
  58. ON PAD _qne1bxoga OF _MSYSMENU ACTIVATE POPUP file
  59. ON PAD _qne1bxogl OF _MSYSMENU ACTIVATE POPUP edit
  60. ON PAD _qne1bxogm OF _MSYSMENU ACTIVATE POPUP applicatio
  61. ON PAD _qne1bxoha OF _MSYSMENU ACTIVATE POPUP utilities
  62. ON PAD _qne1bxohj OF _MSYSMENU ACTIVATE POPUP help
  63.  
  64. DEFINE POPUP file MARGIN RELATIVE SHADOW COLOR SCHEME 13
  65. DEFINE BAR _MFI_SETUP OF file PROMPT "\<Print Setup"
  66. DEFINE BAR 2 OF file PROMPT "\-"
  67. DEFINE BAR 3 OF file PROMPT "\<Quit"
  68. ON SELECTION BAR 3 OF file ;
  69.     DO _qne1bxok2 ;
  70.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  71.  
  72. DEFINE POPUP edit MARGIN RELATIVE SHADOW COLOR SCHEME 4
  73. DEFINE BAR _MED_CUT OF edit PROMPT "Cu\<t" ;
  74.     KEY CTRL+X, "Ctrl+X"
  75. DEFINE BAR _MED_COPY OF edit PROMPT "\<Copy" ;
  76.     KEY CTRL+C, "Ctrl+C"
  77. DEFINE BAR _MED_PASTE OF edit PROMPT "\<Paste" ;
  78.     KEY CTRL+V, "Ctrl+V"
  79. DEFINE BAR _MED_PSTLK OF edit PROMPT "Paste \<Special..."
  80. DEFINE BAR _MED_CLEAR OF edit PROMPT "Clear"
  81. DEFINE BAR _MED_SP200 OF edit PROMPT "\-"
  82. DEFINE BAR _MED_INSOB OF edit PROMPT "\<Insert Object..."
  83. DEFINE BAR _MED_OBJ OF edit PROMPT "\<Object..."
  84. DEFINE BAR _MED_LINK OF edit PROMPT "Change Lin\<k"
  85. DEFINE BAR _MED_CVTST OF edit PROMPT "Con\<vert To Static"
  86. DEFINE BAR _med_sp300 OF edit PROMPT "\-"
  87. DEFINE BAR _MED_SLCTA OF edit PROMPT "Select \<All" ;
  88.     KEY CTRL+A, "Ctrl+A"
  89. DEFINE BAR _MED_SP300 OF edit PROMPT "\-"
  90. DEFINE BAR _MED_PREF OF edit PROMPT "\<Preferences..."
  91.  
  92. DEFINE POPUP applicatio MARGIN RELATIVE SHADOW COLOR SCHEME 4
  93. DEFINE BAR 1 OF applicatio PROMPT "\<Top" ;
  94.     KEY F2, "F2" ;
  95.     SKIP FOR skipvar or bof()
  96. DEFINE BAR 2 OF applicatio PROMPT "\<Previous" ;
  97.     KEY F5, "F5" ;
  98.     SKIP FOR skipvar or bof()
  99. DEFINE BAR 3 OF applicatio PROMPT "\<Next" ;
  100.     KEY F4, "F4" ;
  101.     SKIP FOR skipvar or eof()
  102. DEFINE BAR 4 OF applicatio PROMPT "\<End" ;
  103.     KEY F3, "F3" ;
  104.     SKIP FOR skipvar or eof()
  105. DEFINE BAR _MWI_ROTAT OF applicatio PROMPT "C\<ycle" ;
  106.     KEY CTRL+F1, "Ctrl+F1"
  107. DEFINE BAR 6 OF applicatio PROMPT "\-"
  108. DEFINE BAR 7 OF applicatio PROMPT "\<Add Record" ;
  109.     KEY CTRL+N, "Ctrl+N" ;
  110.     SKIP FOR skipvar
  111. DEFINE BAR 8 OF applicatio PROMPT "\<Copy Record" ;
  112.     SKIP FOR skipvar OR m.wiz_screen
  113. DEFINE BAR 9 OF applicatio PROMPT "\<Delete Record" ;
  114.     KEY CTRL+D, "Ctrl+D" ;
  115.     SKIP FOR skipvar
  116. DEFINE BAR 10 OF applicatio PROMPT "\-"
  117. DEFINE BAR 11 OF applicatio PROMPT "Locate" ;
  118.     SKIP FOR skipvar
  119. DEFINE BAR 12 OF applicatio PROMPT "\<Search..." ;
  120.     KEY CTRL+S, "Ctrl+S" ;
  121.     SKIP FOR skipvar
  122. DEFINE BAR 13 OF applicatio PROMPT "\<Filter..." ;
  123.     KEY CTRL+F, "Ctrl+F" ;
  124.     SKIP FOR skipvar
  125. DEFINE BAR 14 OF applicatio PROMPT "\<Order..." ;
  126.     KEY CTRL+O, "Ctrl+O" ;
  127.     SKIP FOR skipvar OR m.wiz_screen
  128. DEFINE BAR 15 OF applicatio PROMPT "\-"
  129. DEFINE BAR 16 OF applicatio PROMPT "Pick \<List" ;
  130.     KEY CTRL+L, "Ctrl+L" ;
  131.     SKIP FOR m.skipvar or m.nextdbf <= 2
  132. DEFINE BAR 17 OF applicatio PROMPT "\-"
  133. DEFINE BAR 18 OF applicatio PROMPT "\<Query..." ;
  134.     KEY CTRL+Q, "Ctrl+Q" ;
  135.     SKIP FOR skipvar or ('EXE' $ VERSION())
  136. DEFINE BAR 19 OF applicatio PROMPT "\<Report..." ;
  137.     KEY CTRL+R, "Ctrl+R" ;
  138.     SKIP FOR skipvar
  139. ON SELECTION BAR 1 OF applicatio ;
  140.     DO _qne1bxosk ;
  141.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  142. ON SELECTION BAR 2 OF applicatio ;
  143.     DO _qne1bxotj ;
  144.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  145. ON SELECTION BAR 3 OF applicatio ;
  146.     DO _qne1bxoud ;
  147.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  148. ON SELECTION BAR 4 OF applicatio ;
  149.     DO _qne1bxova ;
  150.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  151. ON SELECTION BAR 7 OF applicatio ;
  152.     DO _qne1bxowj ;
  153.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  154. ON SELECTION BAR 8 OF applicatio ;
  155.     DO _qne1bxox9 ;
  156.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  157. ON SELECTION BAR 9 OF applicatio ;
  158.     DO _qne1bxoyc ;
  159.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  160. ON SELECTION BAR 11 OF applicatio ;
  161.     DO _qne1bxoyd ;
  162.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  163. ON SELECTION BAR 12 OF applicatio ;
  164.     DO _qne1bxp05 ;
  165.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  166. ON SELECTION BAR 13 OF applicatio ;
  167.     DO _qne1bxp06 ;
  168.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  169. ON SELECTION BAR 14 OF applicatio ;
  170.     DO _qne1bxp1s ;
  171.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  172. ON SELECTION BAR 16 OF applicatio DO showpop WITH ALIAS(),VARREAD()
  173. ON SELECTION BAR 18 OF applicatio ;
  174.     DO _qne1bxp34 ;
  175.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  176. ON SELECTION BAR 19 OF applicatio ;
  177.     DO _qne1bxp40 ;
  178.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  179.  
  180. DEFINE POPUP utilities MARGIN RELATIVE SHADOW COLOR SCHEME 4
  181. DEFINE BAR 1 OF utilities PROMPT "\<Refresh Screen" ;
  182.     SKIP FOR skipvar
  183. DEFINE BAR 2 OF utilities PROMPT "\<Construct Index" ;
  184.     SKIP FOR skipvar
  185. DEFINE BAR 3 OF utilities PROMPT "\<Pack" ;
  186.     SKIP FOR skipvar
  187. ON SELECTION BAR 1 OF utilities ;
  188.     DO _qne1bxp5u ;
  189.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  190. ON SELECTION BAR 2 OF utilities ;
  191.     DO _qne1bxp5v ;
  192.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  193. ON SELECTION BAR 3 OF utilities ;
  194.     DO _qne1bxp7h ;
  195.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  196.  
  197. DEFINE POPUP help MARGIN RELATIVE SHADOW COLOR SCHEME 4
  198. DEFINE BAR _MST_HELP OF help PROMPT "\<Help..." ;
  199.     KEY F1, "F1"
  200. DEFINE BAR 2 OF help PROMPT "\-"
  201. DEFINE BAR _MST_MACRO OF help PROMPT "\<Macros"
  202. DEFINE BAR _MST_CALCU OF help PROMPT "\<Calculator"
  203. DEFINE BAR _MST_DIARY OF help PROMPT "Calendar/\<Diary"
  204. DEFINE BAR _MST_PUZZL OF help PROMPT "Pu\<zzle"
  205. DEFINE BAR 7 OF help PROMPT "\-"
  206. DEFINE BAR 8 OF help PROMPT "\<About..."
  207. ON SELECTION BAR 8 OF help ;
  208.     DO _qne1bxpae ;
  209.     IN LOCFILE("\WIZARDS\APPMENU" ,"MPX;MPR|FXP;PRG" ,"Where is APPMENU?")
  210.  
  211.  
  212. *       ╓─────────────────────────────────────────────────────────╖
  213. *       ║                                                         ║
  214. *       ║ _QNE1BXOK2  ON SELECTION BAR 3 OF POPUP file            ║
  215. *       ║                                                         ║
  216. *       ║ Procedure Origin:                                       ║
  217. *       ║                                                         ║
  218. *       ║ From Menu:  APPMENU.MPR,            Record:    8        ║
  219. *       ║ Called By:  ON SELECTION BAR 3 OF POPUP file            ║
  220. *       ║ Prompt:     Quit                                        ║
  221. *       ║ Snippet:    1                                           ║
  222. *       ║                                                         ║
  223. *       ╙─────────────────────────────────────────────────────────╜
  224. *
  225. PROCEDURE _qne1bxok2
  226. * Select the main database
  227. dbfstem = makealias(juststem(m.dbfname))
  228. SELECT (dbfstem)
  229. =actwin(woutput())
  230.  
  231. bailout = .T.
  232. CLEAR READ
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239. *       ╓─────────────────────────────────────────────────────────╖
  240. *       ║                                                         ║
  241. *       ║ _QNE1BXOSK  ON SELECTION BAR 1 OF POPUP applicatio      ║
  242. *       ║                                                         ║
  243. *       ║ Procedure Origin:                                       ║
  244. *       ║                                                         ║
  245. *       ║ From Menu:  APPMENU.MPR,            Record:   27        ║
  246. *       ║ Called By:  ON SELECTION BAR 1 OF POPUP applicatio      ║
  247. *       ║ Prompt:     Top                                         ║
  248. *       ║ Snippet:    2                                           ║
  249. *       ║                                                         ║
  250. *       ╙─────────────────────────────────────────────────────────╜
  251. *
  252. PROCEDURE _qne1bxosk
  253. GOTO TOP
  254. IF !m.wiz_screen
  255.    ACTIVATE WINDOW appctrl
  256. ENDIF
  257. IF m.wiz_screen
  258.    SCATTER MEMVAR MEMO
  259. ENDIF
  260. WAIT WINDOW "Top of file" NOWAIT
  261. SHOW GETS
  262.  
  263.  
  264.  
  265. *       ╓─────────────────────────────────────────────────────────╖
  266. *       ║                                                         ║
  267. *       ║ _QNE1BXOTJ  ON SELECTION BAR 2 OF POPUP applicatio      ║
  268. *       ║                                                         ║
  269. *       ║ Procedure Origin:                                       ║
  270. *       ║                                                         ║
  271. *       ║ From Menu:  APPMENU.MPR,            Record:   28        ║
  272. *       ║ Called By:  ON SELECTION BAR 2 OF POPUP applicatio      ║
  273. *       ║ Prompt:     Previous                                    ║
  274. *       ║ Snippet:    3                                           ║
  275. *       ║                                                         ║
  276. *       ╙─────────────────────────────────────────────────────────╜
  277. *
  278. PROCEDURE _qne1bxotj
  279. SKIP -1
  280. IF BOF()
  281.    WAIT WINDOW "Top of file" NOWAIT
  282.    GOTO TOP
  283. ENDIF
  284. IF m.wiz_screen
  285.    SCATTER MEMVAR MEMO
  286. ENDIF
  287. SHOW GETS
  288.  
  289.  
  290.  
  291. *       ╓─────────────────────────────────────────────────────────╖
  292. *       ║                                                         ║
  293. *       ║ _QNE1BXOUD  ON SELECTION BAR 3 OF POPUP applicatio      ║
  294. *       ║                                                         ║
  295. *       ║ Procedure Origin:                                       ║
  296. *       ║                                                         ║
  297. *       ║ From Menu:  APPMENU.MPR,            Record:   29        ║
  298. *       ║ Called By:  ON SELECTION BAR 3 OF POPUP applicatio      ║
  299. *       ║ Prompt:     Next                                        ║
  300. *       ║ Snippet:    4                                           ║
  301. *       ║                                                         ║
  302. *       ╙─────────────────────────────────────────────────────────╜
  303. *
  304. PROCEDURE _qne1bxoud
  305. SKIP
  306. IF EOF()
  307.    WAIT WINDOW "End of file" NOWAIT
  308.    GOTO BOTTOM
  309. ENDIF
  310. IF m.wiz_screen
  311.    SCATTER MEMVAR MEMO
  312. ENDIF
  313. SHOW GETS
  314.  
  315.  
  316.  
  317. *       ╓─────────────────────────────────────────────────────────╖
  318. *       ║                                                         ║
  319. *       ║ _QNE1BXOVA  ON SELECTION BAR 4 OF POPUP applicatio      ║
  320. *       ║                                                         ║
  321. *       ║ Procedure Origin:                                       ║
  322. *       ║                                                         ║
  323. *       ║ From Menu:  APPMENU.MPR,            Record:   30        ║
  324. *       ║ Called By:  ON SELECTION BAR 4 OF POPUP applicatio      ║
  325. *       ║ Prompt:     End                                         ║
  326. *       ║ Snippet:    5                                           ║
  327. *       ║                                                         ║
  328. *       ╙─────────────────────────────────────────────────────────╜
  329. *
  330. PROCEDURE _qne1bxova
  331. GOTO BOTTOM
  332. IF m.wiz_screen
  333.    SCATTER MEMVAR MEMO
  334. ENDIF
  335. WAIT WINDOW "End of file" NOWAIT
  336. SHOW GETS
  337.  
  338.  
  339.  
  340. *       ╓─────────────────────────────────────────────────────────╖
  341. *       ║                                                         ║
  342. *       ║ _QNE1BXOWJ  ON SELECTION BAR 7 OF POPUP applicatio      ║
  343. *       ║                                                         ║
  344. *       ║ Procedure Origin:                                       ║
  345. *       ║                                                         ║
  346. *       ║ From Menu:  APPMENU.MPR,            Record:   33        ║
  347. *       ║ Called By:  ON SELECTION BAR 7 OF POPUP applicatio      ║
  348. *       ║ Prompt:     Add Record                                  ║
  349. *       ║ Snippet:    6                                           ║
  350. *       ║                                                         ║
  351. *       ╙─────────────────────────────────────────────────────────╜
  352. *
  353. PROCEDURE _qne1bxowj
  354. #DEFINE C_NOPARENT        "You cannot add a child record if there is no parent."
  355.  
  356. IF m.wiz_screen
  357.   do ("btn_val") WITH "ADD"
  358. ELSE
  359.   * Add a record to the current database. Called from "Add Record" menu option, if
  360.   * this is not a wizard screen.
  361.   *-------------------------------------------------------------------------------
  362.  
  363.   EXTERNAL ARRAY dbflist
  364.  
  365.   PRIVATE allblank, i, fldname, sname, c_rec
  366.  
  367.   IF (m.nextdbf <= 2) OR (ALIAS() = dbflist[1,m.cstemnum])
  368.      * Appending into main database
  369.  
  370.      * Always allow this if there are no records; otherwise check for existing
  371.      * blank records.
  372.      allblank = .F.
  373.      IF RECCOUNT() > 0
  374.         sname = makealias(juststem(m.dbfname))
  375.         SELECT (sname)
  376.         GOTO TOP
  377.  
  378.         DO WHILE DELETED() AND !EOF()
  379.            SKIP
  380.         ENDDO
  381.         IF EOF()   && all records appear to be deleted
  382.            GOTO TOP
  383.         ENDIF
  384.  
  385.         =actwin(m.win_name)
  386.  
  387.         m.allblank = .T.
  388.         FOR i = 1 TO FCOUNT()
  389.            m.fldname = FIELD(i)
  390.            IF !EMPTY(&fldname)
  391.               m.allblank = .F.
  392.            ENDIF
  393.         ENDFOR
  394.  
  395.         * Make sure all records aren't deleted
  396.         IF m.allblank
  397.            IF RECCOUNT() < 10   && just a rule of thumb
  398.               COUNT FOR !DELETED() TO notdel
  399.               GOTO TOP
  400.               IF m.notdel = 0
  401.                  m.allblank = .F.
  402.               ENDIF
  403.            ENDIF
  404.         ENDIF
  405.      ENDIF
  406.  
  407.      IF !m.allblank
  408.         APPEND BLANK
  409.         SHOW GETS
  410.      ENDIF
  411.  
  412.      _CUROBJ = 1
  413.  
  414.      IF m.wiz_screen
  415.         SCATTER MEMVAR MEMO
  416.         SHOW GETS
  417.      ENDIF
  418.  
  419.      =actwin(m.win_name)
  420.  
  421.   ELSE   && appending record into a child browse
  422.      * Fill in the key fields.  First find the dbflist record for this
  423.      * database.
  424.      i = 1
  425.      got_it = .F.
  426.      DO WHILE i <= m.numareas AND !got_it
  427.         IF UPPER(dbflist[i,m.cstemnum]) == ALIAS()
  428.            got_it = .T.
  429.         ELSE
  430.            i = i + 1
  431.         ENDIF
  432.      ENDDO
  433.      * If we found the current database, figure out what the parent database
  434.      * is and make sure that the parent is not at EOF().
  435.      IF !EOF(dbflist[m.i,m.pdbfnum])
  436.          * Also determine what its key field is and make it default
  437.          * to the corresponding value in the parent database.  For
  438.        * example, if the current database is an invoice file, make the
  439.        * customer number default to the customer number of the current
  440.        * record in the customer file.
  441.        APPEND BLANK
  442.        IF got_it
  443.           * dbflist[m.i,m.cfldnum] looks like "DETAIL.INO"
  444.           childfld  = dbflist[m.i,m.cfldnum]
  445.           parentfld = dbflist[m.i,m.pfldnum]
  446.  
  447.           * Replace the key field into the newly appended record
  448.           REPLACE &childfld WITH &parentfld
  449.        ENDIF
  450.        ELSE
  451.        WAIT WINDOW C_NOPARENT
  452.      ENDIF
  453.      SHOW WINDOW (ALIAS()) REFRESH
  454.   ENDIF
  455. ENDIF
  456.  
  457.  
  458.  
  459.  
  460.  
  461. *       ╓─────────────────────────────────────────────────────────╖
  462. *       ║                                                         ║
  463. *       ║ _QNE1BXOX9  ON SELECTION BAR 8 OF POPUP applicatio      ║
  464. *       ║                                                         ║
  465. *       ║ Procedure Origin:                                       ║
  466. *       ║                                                         ║
  467. *       ║ From Menu:  APPMENU.MPR,            Record:   34        ║
  468. *       ║ Called By:  ON SELECTION BAR 8 OF POPUP applicatio      ║
  469. *       ║ Prompt:     Copy Record                                 ║
  470. *       ║ Snippet:    7                                           ║
  471. *       ║                                                         ║
  472. *       ╙─────────────────────────────────────────────────────────╜
  473. *
  474. PROCEDURE _qne1bxox9
  475. SCATTER MEMVAR
  476. APPEND BLANK
  477. GATHER MEMVAR
  478. IF TYPE("DBFLIST") = "U" OR ALIAS() == UPPER(dbflist[1,m.cstemnum])
  479.    SHOW GETS
  480.    =actwin(m.win_name)   && activate user window
  481. ENDIF
  482. SHOW WINDOW (ALIAS()) REFRESH
  483.  
  484.  
  485. *       ╓─────────────────────────────────────────────────────────╖
  486. *       ║                                                         ║
  487. *       ║ _QNE1BXOYC  ON SELECTION BAR 9 OF POPUP applicatio      ║
  488. *       ║                                                         ║
  489. *       ║ Procedure Origin:                                       ║
  490. *       ║                                                         ║
  491. *       ║ From Menu:  APPMENU.MPR,            Record:   35        ║
  492. *       ║ Called By:  ON SELECTION BAR 9 OF POPUP applicatio      ║
  493. *       ║ Prompt:     Delete Record                               ║
  494. *       ║ Snippet:    8                                           ║
  495. *       ║                                                         ║
  496. *       ╙─────────────────────────────────────────────────────────╜
  497. *
  498. PROCEDURE _qne1bxoyc
  499. * Delete this record (and any children for which the cascading
  500. * delete option is set) from the current database.
  501.  
  502. PRIVATE m.delrec, m.wasdeleted
  503. m.wasdeleted = .F.
  504. IF RECCOUNT() > 0
  505.   IF m.wiz_screen
  506.     m.delrec = recno()
  507.     DO ("btn_val") WITH "DELETE"
  508.     m.wasdeleted = RECNO() <> m.delrec        && Wizard code deletes record and moves record
  509.                                             && pointer. Use this to detect deletion (user
  510.                                             && could have Canceled). In FoxApp, we want to
  511.                                             && call procedure Cascade before the deletion,
  512.                                             && so recall and delete again afterward.
  513.     GO m.delrec
  514.     RECALL
  515.   ELSE
  516.      WAIT WINDOW "Deleting--Please wait." NOWAIT
  517.      m.wasdeleted = .t.
  518.   ENDIF
  519.  
  520.   IF m.wasdeleted
  521.      * Perform any necessary cascading deletes
  522.      IF m.nextdbf > 1
  523.         DO Cascade WITH ALIAS(), "DELETE"
  524.      ENDIF
  525.  
  526.      DELETE
  527.  
  528.      * Moving off the deleted record if we are in the main screen
  529.      IF TYPE("DBFLIST") = "U" OR ALIAS() = dbflist[1,m.cstemnum]
  530.         IF !EOF()
  531.            SKIP
  532.         ENDIF
  533.         IF EOF()
  534.            GOTO TOP
  535.         ENDIF
  536.         IF m.wiz_screen
  537.            SCATTER MEMVAR MEMO
  538.         ENDIF
  539.         SHOW GETS
  540.      ELSE
  541.         SHOW WINDOW (ALIAS()) REFRESH
  542.      ENDIF
  543.  
  544.      WAIT CLEAR
  545.   ENDIF
  546. ENDIF
  547.  
  548.  
  549.  
  550. *       ╓─────────────────────────────────────────────────────────╖
  551. *       ║                                                         ║
  552. *       ║ _QNE1BXOYD  ON SELECTION BAR 11 OF POPUP applicatio     ║
  553. *       ║                                                         ║
  554. *       ║ Procedure Origin:                                       ║
  555. *       ║                                                         ║
  556. *       ║ From Menu:  APPMENU.MPR,            Record:   37        ║
  557. *       ║ Called By:  ON SELECTION BAR 11 OF POPUP applicatio     ║
  558. *       ║ Prompt:     Locate                                      ║
  559. *       ║ Snippet:    9                                           ║
  560. *       ║                                                         ║
  561. *       ╙─────────────────────────────────────────────────────────╜
  562. *
  563. PROCEDURE _qne1bxoyd
  564. m.skipvar = .T.
  565. dbfstem = makealias(juststem(m.dbfname))
  566. SELECT (dbfstem)
  567. IF m.wiz_screen
  568.   DO ("btn_val") WITH "LOCATE"
  569. ELSE
  570.   DEFINE WINDOW FA_loc FROM 1,1 TO 20,40;
  571.     SYSTEM GROW CLOSE ZOOM FLOAT
  572.   MOVE WINDOW FA_loc CENTER
  573.   ON KEY LABEL enter KEYBOARD(CHR(23))
  574.   BROWSE WINDOW FA_loc NOEDIT NODELETE NOAPPEND ;
  575.     NOMENU TITLE "Locate Record" COLOR SCHEME 10
  576.   ON KEY LABEL enter
  577.   RELEASE WINDOW FA_loc
  578.   SHOW MENU _msysmenu
  579.   =actwin(woutput())
  580. ENDIF
  581. m.skipvar = .F.
  582. IF m.wiz_screen
  583.    SCATTER MEMVAR MEMO
  584. ENDIF
  585.  
  586. SHOW GETS
  587.  
  588.  
  589.  
  590. *       ╓─────────────────────────────────────────────────────────╖
  591. *       ║                                                         ║
  592. *       ║ _QNE1BXP05  ON SELECTION BAR 12 OF POPUP applicatio     ║
  593. *       ║                                                         ║
  594. *       ║ Procedure Origin:                                       ║
  595. *       ║                                                         ║
  596. *       ║ From Menu:  APPMENU.MPR,            Record:   38        ║
  597. *       ║ Called By:  ON SELECTION BAR 12 OF POPUP applicatio     ║
  598. *       ║ Prompt:     Search...                                   ║
  599. *       ║ Snippet:    10                                          ║
  600. *       ║                                                         ║
  601. *       ╙─────────────────────────────────────────────────────────╜
  602. *
  603. PROCEDURE _qne1bxp05
  604. m.dbfstem = makealias(juststem(m.dbfname))
  605. SELECT (m.dbfstem)
  606. IF !m.regen
  607.    m.mname = 'appsrch.prg'
  608. ELSE
  609.    m.mname = 'appsrch.spr'
  610. ENDIF
  611. DO (m.mname)
  612. IF m.wiz_screen
  613.    SCATTER MEMVAR MEMO
  614. ENDIF
  615. SHOW GETS
  616.  
  617.  
  618.  
  619. *       ╓─────────────────────────────────────────────────────────╖
  620. *       ║                                                         ║
  621. *       ║ _QNE1BXP06  ON SELECTION BAR 13 OF POPUP applicatio     ║
  622. *       ║                                                         ║
  623. *       ║ Procedure Origin:                                       ║
  624. *       ║                                                         ║
  625. *       ║ From Menu:  APPMENU.MPR,            Record:   39        ║
  626. *       ║ Called By:  ON SELECTION BAR 13 OF POPUP applicatio     ║
  627. *       ║ Prompt:     Filter...                                   ║
  628. *       ║ Snippet:    11                                          ║
  629. *       ║                                                         ║
  630. *       ╙─────────────────────────────────────────────────────────╜
  631. *
  632. PROCEDURE _qne1bxp06
  633. m.orig_rec = RECNO()
  634. GETEXPR 'Filter Expression' TO m.filt_expr TYPE 'L' DEFAULT m.filt_expr
  635. IF !EMPTY(m.filt_expr)
  636.    SET FILTER TO &filt_expr
  637.    GOTO TOP
  638.    IF EOF()
  639.       WAIT WINDOW "No records match that filter" NOWAIT
  640.       SET FILTER TO
  641.       IF m.orig_rec <= RECCOUNT()
  642.          GOTO m.orig_rec
  643.       ENDIF
  644.    ENDIF
  645. ELSE
  646.    SET FILTER TO
  647. ENDIF
  648. IF m.wiz_screen
  649.    SCATTER MEMVAR MEMO
  650. ENDIF
  651.  
  652. SHOW GETS
  653.  
  654.  
  655.  
  656. *       ╓─────────────────────────────────────────────────────────╖
  657. *       ║                                                         ║
  658. *       ║ _QNE1BXP1S  ON SELECTION BAR 14 OF POPUP applicatio     ║
  659. *       ║                                                         ║
  660. *       ║ Procedure Origin:                                       ║
  661. *       ║                                                         ║
  662. *       ║ From Menu:  APPMENU.MPR,            Record:   40        ║
  663. *       ║ Called By:  ON SELECTION BAR 14 OF POPUP applicatio     ║
  664. *       ║ Prompt:     Order...                                    ║
  665. *       ║ Snippet:    12                                          ║
  666. *       ║                                                         ║
  667. *       ╙─────────────────────────────────────────────────────────╜
  668. *
  669. PROCEDURE _qne1bxp1s
  670. m.dbfstem = makealias(juststem(m.dbfname))
  671. SELECT (m.dbfstem)
  672. IF !EMPTY(CDX(1))
  673.    IF !m.regen
  674.       m.mname = 'getorder.prg'
  675.    ELSE
  676.       m.mname = 'getorder.spr'
  677.    ENDIF
  678.    DO (m.mname)
  679.    IF m.wiz_screen
  680.       SCATTER MEMVAR MEMO
  681.    ENDIF
  682.    SHOW GETS
  683. ELSE
  684.    WAIT WINDOW "No indexes were found"
  685. ENDIF
  686.  
  687.  
  688.  
  689. *       ╓─────────────────────────────────────────────────────────╖
  690. *       ║                                                         ║
  691. *       ║ _QNE1BXP34  ON SELECTION BAR 18 OF POPUP applicatio     ║
  692. *       ║                                                         ║
  693. *       ║ Procedure Origin:                                       ║
  694. *       ║                                                         ║
  695. *       ║ From Menu:  APPMENU.MPR,            Record:   44        ║
  696. *       ║ Called By:  ON SELECTION BAR 18 OF POPUP applicatio     ║
  697. *       ║ Prompt:     Query...                                    ║
  698. *       ║ Snippet:    13                                          ║
  699. *       ║                                                         ║
  700. *       ╙─────────────────────────────────────────────────────────╜
  701. *
  702. PROCEDURE _qne1bxp34
  703. PRIVATE gen_name, i, qname, pname, win_name
  704.  
  705. CREATE VIEW qprview
  706.  
  707. * Select the main database
  708. m.dbfstem = makealias(juststem(m.dbfname))
  709. SELECT (m.dbfstem)
  710.  
  711. m.skipvar = .T.
  712. m.gen_name = .F.
  713.  
  714. * Default query name is the database name with a QPR extension.
  715. m.qname = addbs(m.qprpath) + forceext(justfname(m.dbfname),'QPR')
  716.  
  717. * If there are multiple databases in this app, create a query template
  718. * so that the user doesn't have to enter all the relations again.
  719. IF m.nextdbf > 2 AND TYPE("dbflist") <> "U"
  720.    * Create a blank query file to pass the databases and relations
  721.    * along to RQBE
  722.  
  723.    * Try to come up with a reasonable-sounding unique name for the query,
  724.    * if the default name is already taken.
  725.    m.i = 0
  726.    DO WHILE FILE(m.qname) AND i < 100
  727.       m.qname = ALLTRIM(LEFT(juststem(m.qname),6)) + STR(m.i,2)
  728.       m.qname = CHRTRAN(m.qname,' ','0')
  729.       m.qname = forceext(m.qname,'QPR')
  730.       m.qname = addbs(m.qprpath) + m.qname
  731.       m.i = m.i + 1
  732.    ENDDO
  733.  
  734.    * Prompt the user for the query name and allow changes.
  735.    * Change to the directory the user wants to use so that the
  736.    * PUTFILE directory defaults are right.
  737.    m.in_dir = SET('DEFAULT')+CURDIR()
  738.    SET DEFAULT TO (qprpath)
  739.    m.qname = PUTFILE('Query name',m.qname,'QPR','OK')
  740.    SET DEFAULT TO (m.in_dir)
  741.  
  742.    IF EMPTY(m.qname)   && user changed his mind.
  743.       m.skipvar = .F.
  744.       RETURN
  745.    ELSE
  746.       * Use this path for future queries
  747.       m.qprpath = justpath(m.qname)
  748.    ENDIF
  749.  
  750.    * Create the query template file
  751.    SET TEXTMERGE TO (m.qname)
  752.    SET TEXTMERGE ON
  753.    SET CONSOLE OFF
  754.  
  755.    m.gen_name = .T.     && note that this is a generated file
  756.  
  757.    \SELECT * ;
  758.    \ FROM <<dbflist[1,m.cstemnum]>>
  759.    FOR m.i = 2 TO m.nextdbf - 1
  760.       \\, <<dbflist[m.i,m.cstemnum]>>
  761.    ENDFOR
  762.    \\ ;
  763.    \ WHERE ;
  764.    FOR m.i = 2 TO m.nextdbf - 1
  765.       IF m.i > 2
  766.          \   AND
  767.       ELSE
  768.          \
  769.       ENDIF
  770.       \\   <<dbflist[m.i,m.cfldnum]>> = <<dbflist[m.i,m.pfldnum]>> ;
  771.    ENDFOR
  772.    \INTO CURSOR FoxApp
  773.    \BROWSE NOMODIFY
  774.  
  775.    SET CONSOLE ON
  776.    SET TEXTMERGE OFF
  777.    SET TEXTMERGE TO
  778. ELSE
  779.    * Prompt the user for the query name
  780.    m.qname = PUTFILE('Query name',m.qname,'QPR','OK')
  781. ENDIF
  782.  
  783. IF !EMPTY(m.qname)
  784.    m.win_name = WOUTPUT()
  785.    ACTIVATE SCREEN
  786.    IF FILE(m.qname)
  787.       MODIFY QUERY (m.qname)
  788.    ELSE
  789.       CREATE QUERY (m.qname)
  790.    ENDIF
  791.    CLEAR
  792.    IF !EMPTY(m.win_name)
  793.       ACTIVATE WINDOW (m.win_name)
  794.    ENDIF
  795. ELSE
  796.    * Delete this file if it was a generated file and the
  797.    * user cancelled the query.
  798.    IF m.gen_name AND FILE(m.qname)
  799.       DELETE FILE m.qname
  800.    ENDIF
  801. ENDIF
  802. IF EMPTY(opendbf(m.dbfname))
  803.    m.dbfname = LOCFILE(m.dbfname,'DBF','Please locate the database')
  804. ENDIF
  805. m.skipvar = .F.
  806.  
  807. IF FILE('qprview.vue')
  808.    SET VIEW TO qprview
  809. ENDIF
  810. KEYBOARD CHR(27)   && force screen refresh
  811.  
  812.  
  813.  
  814. *       ╓─────────────────────────────────────────────────────────╖
  815. *       ║                                                         ║
  816. *       ║ _QNE1BXP40  ON SELECTION BAR 19 OF POPUP applicatio     ║
  817. *       ║                                                         ║
  818. *       ║ Procedure Origin:                                       ║
  819. *       ║                                                         ║
  820. *       ║ From Menu:  APPMENU.MPR,            Record:   45        ║
  821. *       ║ Called By:  ON SELECTION BAR 19 OF POPUP applicatio     ║
  822. *       ║ Prompt:     Report...                                   ║
  823. *       ║ Snippet:    14                                          ║
  824. *       ║                                                         ║
  825. *       ╙─────────────────────────────────────────────────────────╜
  826. *
  827. PROCEDURE _qne1bxp40
  828. IF !m.regen
  829.    m.mname = 'prtopts.prg'
  830. ELSE
  831.    m.mname = 'prtopts.spr'
  832. ENDIF
  833. DO (m.mname)
  834.  
  835.  
  836.  
  837. *       ╓─────────────────────────────────────────────────────────╖
  838. *       ║                                                         ║
  839. *       ║ _QNE1BXP5U  ON SELECTION BAR 1 OF POPUP utilities       ║
  840. *       ║                                                         ║
  841. *       ║ Procedure Origin:                                       ║
  842. *       ║                                                         ║
  843. *       ║ From Menu:  APPMENU.MPR,            Record:   48        ║
  844. *       ║ Called By:  ON SELECTION BAR 1 OF POPUP utilities       ║
  845. *       ║ Prompt:     Refresh Screen                              ║
  846. *       ║ Snippet:    15                                          ║
  847. *       ║                                                         ║
  848. *       ╙─────────────────────────────────────────────────────────╜
  849. *
  850. PROCEDURE _qne1bxp5u
  851. =actwin(m.win_name)   && activate user window
  852. KEYBOARD CHR(27)
  853.  
  854.  
  855.  
  856. *       ╓─────────────────────────────────────────────────────────╖
  857. *       ║                                                         ║
  858. *       ║ _QNE1BXP5V  ON SELECTION BAR 2 OF POPUP utilities       ║
  859. *       ║                                                         ║
  860. *       ║ Procedure Origin:                                       ║
  861. *       ║                                                         ║
  862. *       ║ From Menu:  APPMENU.MPR,            Record:   49        ║
  863. *       ║ Called By:  ON SELECTION BAR 2 OF POPUP utilities       ║
  864. *       ║ Prompt:     Construct Index                             ║
  865. *       ║ Snippet:    16                                          ║
  866. *       ║                                                         ║
  867. *       ╙─────────────────────────────────────────────────────────╜
  868. *
  869. PROCEDURE _qne1bxp5v
  870. DO invert WITH ALIAS()
  871. SET ORDER TO 1
  872. GOTO TOP
  873. _CUROBJ = 1
  874. WAIT WINDOW "Reindexing completed" NOWAIT
  875. SHOW GETS
  876.  
  877.  
  878.  
  879.  
  880. *       ╓─────────────────────────────────────────────────────────╖
  881. *       ║                                                         ║
  882. *       ║ _QNE1BXP7H  ON SELECTION BAR 3 OF POPUP utilities       ║
  883. *       ║                                                         ║
  884. *       ║ Procedure Origin:                                       ║
  885. *       ║                                                         ║
  886. *       ║ From Menu:  APPMENU.MPR,            Record:   50        ║
  887. *       ║ Called By:  ON SELECTION BAR 3 OF POPUP utilities       ║
  888. *       ║ Prompt:     Pack                                        ║
  889. *       ║ Snippet:    17                                          ║
  890. *       ║                                                         ║
  891. *       ╙─────────────────────────────────────────────────────────╜
  892. *
  893. PROCEDURE _qne1bxp7h
  894. PACK   && also reindexes the file
  895. SET ORDER TO 1
  896. GOTO TOP
  897. IF RECCOUNT() = 0
  898.    APPEND BLANK
  899. ENDIF
  900. WAIT WINDOW "Pack completed" NOWAIT
  901. KEYBOARD CHR(27)    && causes screen refresh and restores browses
  902. SHOW GETS
  903.  
  904.  
  905.  
  906.  
  907. *       ╓─────────────────────────────────────────────────────────╖
  908. *       ║                                                         ║
  909. *       ║ _QNE1BXPAE  ON SELECTION BAR 8 OF POPUP help            ║
  910. *       ║                                                         ║
  911. *       ║ Procedure Origin:                                       ║
  912. *       ║                                                         ║
  913. *       ║ From Menu:  APPMENU.MPR,            Record:   61        ║
  914. *       ║ Called By:  ON SELECTION BAR 8 OF POPUP help            ║
  915. *       ║ Prompt:     About...                                    ║
  916. *       ║ Snippet:    18                                          ║
  917. *       ║                                                         ║
  918. *       ╙─────────────────────────────────────────────────────────╜
  919. *
  920. PROCEDURE _qne1bxpae
  921. IF !regen
  922.    mname = 'appabout.prg'
  923. ELSE
  924.    mname = 'appabout.spr'
  925. ENDIF
  926. DO (mname)
  927.  
  928.